<?php

	try {
	    
		require_once '../../controller/controller.inc.php';
		$usuario->isAuthorizedView(Operacao::MOVIMENTACAO_SOLICITARRELOTACAO);
		
		if (!isset($_GET['id'])) {
		    header('Location: ../solicitarrelotacao/escolhervaga.php');
		}
		
		$id = ( isset ( $_GET['id']) ) ? $_GET['id'] : $erro = "Por favor, informe uma vaga.";

		$info = NULL;
		
	    $vaga = new Vaga($id);
	    
	    if ($vaga->vagaid == NULL) {
	        throw new Exception('Por favor, informe uma vaga.');
	    }
	    
	    $cargo = $vaga->getCargo();
	    $contrato = $vaga->getContrato();
	    $orgao = $contrato->getOrgao();
	    $empresa = $contrato->getEmpresa();
	    $salario = new Salario(NULL, $vaga->contratoid, $vaga->cargoid);
	    $lotacao = $vaga->getLotacao();
	    $nucleoGestor = $lotacao->getNucleoGestor();
	    $candidato = $vaga->getCandidatoVagaAtivo()->getCandidato();
	    $lotacaoDesejada = NULL;
	    
	    $solicitacaoRelotacao = new SolicitacaoRelotacao(NULL, $candidato->getTableKeyValue());
	    if ($solicitacaoRelotacao->getTableKeyValue()) {
	        $lotacaoDesejada = new Lotacao($solicitacaoRelotacao->lotacaoid);
	        $info = "Este funcionário já possui uma solicitação de relotação para a lotação " . 
	        		"<b>" . $lotacaoDesejada->fantasia . "</b>. Ao solicitar uma nova relotação, ela irá " . 
	                "substituir a anterior.";
	    }
	    
	    $listaLotacoes = listarLotacoes();
	  	
	    if (isset ($_POST["btnAcao"]))
	    {
	        switch($_POST["btnAcao"])
	        {
	        	 case 'Solicitar Relotação':

	        	    $candidatovaga = $vaga->getCandidatoVagaAtivo();
	        	    
	        	    if (!$_POST['ddlLotacaoID']) {
	        	        throw new Exception('Por favor, escolha uma lotação da lista.');
	        	    }
	        	    
	        	    if (!$candidatovaga->getTableKeyValue()) {
	        	        throw new Exception('Não foi encontrado nenhum candidato ativo para esta vaga.');
	        	    }
	        	 	
	        	 	$solicitacaoRelotacao->candidatovagaid = $candidatovaga->candidatovagaid;
	        	 	$solicitacaoRelotacao->lotacaoid = $_POST['ddlLotacaoID'];
	        	 	$solicitacaoRelotacao->datasolicitacao = date('d/m/Y');
	        	 	$solicitacaoRelotacao->salvar();
	        	 	
	        	 	header('location: index.php?method=success');
	        	 	
	        	 	break;
	        }
	    }    
	   
	} catch(exception $e){		
		$erro = $e->getMessage();		
	}

	function listarLotacoes(){
		
	    global $usuario, $contrato, $lotacao, $lotacaoDesejada;
	    
	    $contratoids = $usuario->listarContratosSQL();
	    
		$sql = "SELECT 
					distinct(lc.lotacaoid) as id, l.fantasia as nome 
				FROM 
					lotacoescontrato lc, lotacoes l 
				WHERE 
					l.lotacaoid = lc.lotacaoid
					AND l.lotacaoid <> " . $lotacao->getTableKeyValue();
		if ($lotacaoDesejada) {
		    $sql .= " AND l.lotacaoid <> " . $lotacaoDesejada->getTableKeyValue();
		} 
		$sql .= "AND lc.contratoid IN (
						SELECT contratoid FROM contratos 
						WHERE contratos.empresaid = " . $contrato->empresaid . "
					) 
				ORDER BY l.fantasia ASC";
		
		return TUtils::CriarResultSet($sql);
		
	}
   
?>